package hoodoos.rule.api;


public interface Rule {

  /**
   * 规则名称
   */
  String getName();

  default void init() {
  }

  /**
   * 是否需要执行该规则
   */
  boolean evaluate(GlobalContext globalContext, RequestContext requestContext);

  /**
   * 执行逻辑
   */
  void execute(GlobalContext globalContext, RequestContext requestContext, Facts facts) throws Exception;

}
